package com.ruoyi.manage.enterprise.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 产品准入标准对象 pc_product_access_standard
 *
 * @author ruoyi
 * @date 2025-08-19
 */
@Data
@ApiModel(value="产品准入标准对象", description="产品准入标准")
@TableName("pc_product_access_standard")
@Builder
public class PcProductAccessStandard extends BaseEntity implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     *  主键
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "主键")
    private  Long  id;

    /**
     *  产品主键id
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品主键id")
    @ApiModelProperty(value = "产品主键id")
    @NotNull(message = "产品主键id不能为空")
    private  Long  productId;

    /**
     *  经营时间大于(单位:月)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "经营时间大于(单位:月)")
    @ApiModelProperty(value = "经营时间大于(单位:月)")
    private  Long  operationTimeLimitLower;

    /**
     *  工商个体户限制
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "工商个体户限制")
    @ApiModelProperty(value = "工商个体户限制")
    private  Long  selfEmployLimit;

    /**
     *  是否限制小微企业
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "是否限制小微企业")
    @ApiModelProperty(value = "是否限制小微企业")
    private  Long  microEnterpriseLimit;

    /**
     *  注册资本大于(单位:万)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "注册资本大于(单位:万)")
    @ApiModelProperty(value = "注册资本大于(单位:万)")
    private  BigDecimal  registerFundLimitLower;

    /**
     *  上年度纳税额(单位:万)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "上年度纳税额(单位:万)")
    @ApiModelProperty(value = "上年度纳税额(单位:万)")
    private  BigDecimal  preYearPayTaxAmount;

    /**
     *  上年度开票营业收入(单位:万)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "上年度开票营业收入(单位:万)")
    @ApiModelProperty(value = "上年度开票营业收入(单位:万)")
    private  BigDecimal  preYearIncome;

    /**
     *  纳税等级
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "纳税等级")
    @ApiModelProperty(value = "纳税等级")
    private  String  payTaxGrade;

    /**
     *  企业持续纳税年限(单位:年)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业持续纳税年限(单位:年)")
    @ApiModelProperty(value = "企业持续纳税年限(单位:年)")
    private  Long  payTaxDuration;

    /**
     *  当前贷款余额上限(单位:万)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "当前贷款余额上限(单位:万)")
    @ApiModelProperty(value = "当前贷款余额上限(单位:万)")
    private  BigDecimal  loanRemainAmount;

    /**
     *  企业主年龄下限(单位:岁)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业主年龄下限(单位:岁)")
    @ApiModelProperty(value = "企业主年龄下限(单位:岁)")
    private  Long  ageLimitLower;

    /**
     *  企业主年龄上限(单位:岁)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业主年龄上限(单位:岁)")
    @ApiModelProperty(value = "企业主年龄上限(单位:岁)")
    private  Long  ageLimitUpper;

    /**
     *  企业融资银行数量小于(家)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业融资银行数量小于(家)")
    @ApiModelProperty(value = "企业融资银行数量小于(家)")
    private  Long  bankNumber;

    /**
     *  抵押物限制
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "抵押物限制")
    @ApiModelProperty(value = "抵押物限制")
    private  String  guaranteeLimit;

    /**
     *  抵押物区域限制
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "抵押物区域限制")
    @ApiModelProperty(value = "抵押物区域限制")
    private  Long  guaranteeAreaLimit;

    /**
     *  企业注册地
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业注册地")
    @ApiModelProperty(value = "企业注册地")
    private  Long  registionPlace;

    /**
     *  高薪技术企业
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "高薪技术企业")
    @ApiModelProperty(value = "高薪技术企业")
    private  Long  highTechEnterpriseLimit;

    /**
     *  科技型中小企业
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "科技型中小企业")
    @ApiModelProperty(value = "科技型中小企业")
    private  Long  smallTechEnterpriseLimit;

    /**
     *  企业基本户在本行
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业基本户在本行")
    @ApiModelProperty(value = "企业基本户在本行")
    private  Long  baseAccountInBank;

    /**
     *  企业主本地户籍
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业主本地户籍")
    @ApiModelProperty(value = "企业主本地户籍")
    private  Long  baseAccountNative;

    /**
     *  对企业欠税
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "对企业欠税")
    @ApiModelProperty(value = "对企业欠税")
    private  Long  owingTax;

    /**
     *  企业主房产区域
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业主房产区域")
    @ApiModelProperty(value = "企业主房产区域")
    private  Long  housePropertyArea;

    /**
     *  法人变更限制月
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "法人变更限制月")
    @ApiModelProperty(value = "法人变更限制月")
    private  Long  legalPersonChangeLimitMonth;

    /**
     *  法人变更限制次数
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "法人变更限制次数")
    @ApiModelProperty(value = "法人变更限制次数")
    private  Long  legalPersonChangeLimitNumber;

    /**
     *  创建人
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    @NotBlank(message = "创建人不能为空")
    private  String  createBy;

    /**
     *  创建时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    @NotNull(message = "创建时间不能为空")
    private  Date  createTime;

    /**
     *  更新人
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "更新人")
    @ApiModelProperty(value = "更新人")
    private  String  updateBy;

    /**
     *  更新时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private  Date  updateTime;

    /**
     *  删除状态
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "删除状态")
    @ApiModelProperty(value = "删除状态")
    @NotNull(message = "删除状态不能为空")
    private  Long  deleted;

    /**
     *  版本号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "版本号")
    @ApiModelProperty(value = "版本号")
    private  String  version;

    /**
     *  备注
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private  String  remark;
    @TableField(exist = false)
    private List<String> ids;
    @Tolerate
    public PcProductAccessStandard(){}
}
